Please open Telegram to view this post
VIEW IN TELEGRAM
👻 — Контроль: гарантирует, что все изменения в базе данных могут быть отслежены и контролируемы.
🌚 — Конфиденциальность: обеспечивает защиту данных от несанкционированного доступа.
⚡️ — Согласованность: гарантирует, что транзакция переводит базу данных из одного согласованного состояния в другое, соблюдая все ограничения и правила.
🎉 — Конкурентоспособность: обеспечивает возможность выполнения нескольких транзакций одновременно без конфликтов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👻 — 200
🌚 — 201
⚡️ — 204
🎉 — 400
Please open Telegram to view this post
VIEW IN TELEGRAM
👻 — Интерпретируемость: позволяет транзакциям быть легко читаемыми и понятными для системы.
🌚 — Иммутабельность: гарантирует, что записанные данные нельзя изменить или удалить.
⚡️ — Изолированность: обеспечивает независимость выполнения транзакций, будто каждая из них выполняется отдельно.
🎉 — Инициативность: позволяет базе данных предсказывать и оптимизировать будущие запросы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🤦♂️ Я забил на споры о микросервисах с архитекторами, и вот почему
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
➡️ Читать статью
💬 Как вы относитесь к микросервисам? Использовали ли вы их в своих проектах? Ждём ваши комментарии 👇
🐸 Библиотека devops'a
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
Please open Telegram to view this post
VIEW IN TELEGRAM
cancel()
у context👻 — Ничего страшного, Go сам всё почистит
🌚 — Возникнет panic
⚡️ — Будет утечка памяти и/или зависшая горутина
🎉 — Контекст завершится через timeout
Please open Telegram to view this post
VIEW IN TELEGRAM
👻 — Гарантирует, что все изменения, сделанные транзакцией, будут отменены в случае сбоя системы.
🌚 — Гарантирует, что данные будут сохранены в долговременной памяти после успешной транзакции.
⚡️ — Гарантирует, что транзакции выполняются в порядке их поступления.
🎉 — Гарантирует, что транзакция завершится либо успешно, либо с ошибкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 Главные проблемы распределенных систем (и способы их решения)
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
➡️ В этой статье мы рассмотрим четыре ключевых вызова в разработке таких систем и эффективные методы их преодоления.
🐸 Библиотека программиста
Распределенные системы являются основой высоконагруженных веб-приложений, обеспечивая их масштабируемость, отказоустойчивость и высокую производительность. Однако их разработка сопряжена с рядом сложностей, включая сетевые сбои, трудности координации, угрозы безопасности и проблемы масштабирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👻 — Показатель, измеряющий качество услуги, такой как время отклика или доступность сервиса.
🌚 — Помогает компаниям отслеживать, насколько их сервисы соответствуют ожиданиям пользователей.
⚡️ — Используется для мониторинга и улучшения производительности и надежности сервисов.
🎉 — Метрика, которая помогает достигать целей, установленных в рамках SLO и SLA.
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Что означает звёздочка у ресивера в Go
Anonymous Quiz
1%
Метод может быть вызван только для переменных типа string
3%
Звёздочка у ресивера указывает на то, что переменная является глобальной
95%
Метод работает с указателем на объект, а не с его копией
1%
Позволяет методу работать только с константами
❓ Что делают процессоры в планировщике Go
Anonymous Quiz
5%
Ожидают завершения горутины на одном процессе
66%
Управляют очередью готовых к выполнению горутин и передают их на выполнение
18%
Работают только на одном ядре процессора и не могут переключаться
11%
Ответственны за синхронизацию всех горутин и машин
❓ Что происходит при склеивании строк в Go
Anonymous Quiz
3%
Изменяются на месте, и склеивание строк происходит без выделения новой памяти
94%
Создается новая строка, т.к. строки неизменяемы (immutable) → выделяется новая память для результата
3%
Склеиваются напрямую, память не используется для создания новой строки
1%
Использует сжатие данных, чтобы уменьшить использование памяти и ускорить процесс
❓ Что делает очередь ожидания в планировщике Go
Anonymous Quiz
59%
Хранит горутины, которые готовы к выполнению на процессоре
13%
Выполняет горутины, когда они готовы, и распределяет их между машинами
14%
Переключает горутины между различными ядрами, ожидая их завершения
14%
Обрабатывает блокировки и синхронизирует горутины в очереди
❓ Как нельзя оперировать строками в Go
Anonymous Quiz
7%
Слайсами байт для более низкоуровневой работы
2%
Использовать пакет strings
85%
Напрямую изменять символы через индекс, как в массиве
6%
Конкатенация с использованием «+»
❓ Что делает синхронизация в планировщике Go
Anonymous Quiz
36%
Обеспечивает координацию между горутинами и предотвращает блокировки
31%
Использует каналы и мьютексы для синхронизации выполнения горутин
6%
Управляет таймерами и задержками выполнения горутин
27%
Контролирует распределение горутин между процессами
❓ Что выведет код
Anonymous Quiz
9%
map[a:1]
65%
map[]
13%
panic во время выполнения
13%
Ошибка компиляции